package com.aier.school.service;

import java.io.File;
import java.sql.Time;
import java.util.List;
import java.util.Map;

import com.aier.school.entity.School;
import com.aier.school.entity.SchoolGrade;
import com.aier.school.entity.SchoolGradeAttendance;
import com.aier.school.entity.SchoolInfoDetail;
import com.aier.school.entity.SchoolMessage;
import com.aier.school.entity.SchoolPhoto;
import com.aier.school.entity.SchoolTeacherCharisma;

public interface ISchoolService {
    
    //学校公告(全体师生)
    short SCHOOL_MESSAGE_TYPE_SCHOOL_TS = 0;
    //班级公告
    short SCHOOL_MESSAGE_TYPE_CLASS = 1;
    //学校公告(全体教师)
    short SCHOOL_MESSAGE_TYPE_SCHOOL_T = 2;
    
    /**
     * 根据sid查询学校信息
     * @param sid
     * @return
     */
    SchoolInfoDetail searchSchoolInfoBySid(Integer sid);
    
    
    /**
     * 根据学校名查询学校数量
     * @return
     */
    int countSchoolByName(String sname,Integer sid);    
    
    /**
     * 根据班级id查询学校
     * @return
     */
    School searchSchoolByCid(Long cid);  
    
    /**
     * 根据学校id查询学校
     * @return
     */
    School searchSchoolBySid(Integer sid);  
    
    /**
     * 根据用户id查询所在学校
     * @param uid
     * @return
     */
    List<School> searchSchoolListByUid(Long uid);
    
    /**
     * 根据用户id查询所在学校
     * @param uid
     * @return
     */
    School searchSchoolByUid(Long uid);
    /**
     * 添加学校
     * @return
     */
    int insertSchool(School school);
    
    /**
     * 添加学校
     * @return
     */
    int insertSchoolNew(School school);
    
    /**
     * 删除学校
     * @return
     */
    int deleteSchool(Integer sid);
        
    /**
     * 修改学校校徽
     * @return
     */
    int updateSchoolLogo(Integer sid,String slogo);    
    
    /**
     * 修改学校封面
     * @return
     */
    int updateSchoolImg(Integer sid,String img);    
    
    
    /**
     * 修改学校信息
     * @return
     */
    int updateSchoolInfo(School school);
    
    /**
     * 修改学校短信后缀
     * @return
     */
    int updateMessageSuffix(Integer sid,String mesSuffix);
    
//=====================================================================================    
    
    /**
     * 分页显示学校相册图片列表
     * @return
     */
    Map<String, Object> searchSchoolPhotoList(int page,int pagesize, Integer sid);
    
    /**
     * 查询班级所有相册图片
     * @return
     */
    List<SchoolPhoto> searchSchoolPhotoList(Integer sid);
    
    /**
     * 添加学校相册图片
     * @return
     */
    long insertSchoolPhoto(SchoolPhoto sp);
    
    /**
     * 修改学校相册图片
     * @return
     */
    int updateSchoolPhoto(SchoolPhoto sp);
    
    /**
     * 删除学校相册图片
     * @return
     */
    int deleteSchoolPhoto(Long spid);    

//=====================================================================================    
    
    /**
     * 分页显示学校职务列表
     * @return
     */
    Map<String, Object> searchSchoolGradeList(int page,int pagesize, Integer sid);

    /**
     * 查询所有学校职务列表
     * @return
     */
    List<SchoolGrade> searchSchoolGradeList(Integer sid);
    
    /**
     * 根据条件查询学校职务
     * @return
     */
    SchoolGrade searchSchoolGradeByCondition(long gid);   
    
    /**
     * 查询职务作息列表
     * @return
     */
    List<SchoolGradeAttendance> searchSchoolGradeAttendanceList(Long gid);
    
    /**
     * 检查职务名是否可用
     * @return
     */
    int checkSchoolGradeByName(String gname,int sid,Long gid);
    
    /**
     * 添加职务
     * @return
     */
    int insertSchoolGrade(int sid,String gname,String desinfo,String[] agdates,
            Time sadate, Time eadate, Time spdate,Time epdate);
    
    /**
     * 删除职务
     * @return
     */
    int deleteSchoolGrade(long gid);
    
    /**
     * 修改职务
     * @return
     */
    int updateSchoolGrade(long gid,String gname,String desinfo,String[] agdates,
            Time sadate, Time eadate, Time spdate,Time epdate);
    
//=====================================================================================    
    
    /**
     * 分页显示学校公告列表
     * @return
     */
    Map<String, Object> searchSchoolMessageList(int page,int pagesize, Integer sid);
    
    
    List<SchoolMessage> searchSchoolMessageList(Integer sid);
    
    /**
     * 分页显示班级(学校)公告列表
     * @return
     */
    Map<String, Object> searchClassMessageList(int page,int pagesize, Long cid);
    
    /**
     * 发布学校公告
     * @return
     */
    long insertSchoolMessage(int sid,Long tid,String message,String imageName);
    
    /**
     * 发布班级公告
     * @return
     */
    long insertClassMessage(Long cid,Long tid,String message,String imageName);
    
//=====================================================================================        
    
    /**
     * 添加每日餐饮
     * @param sid
     * @param dailyfood
     * @return
     */
    int insertDailyFood(Integer sid,String dailyfood,Short ismessage);
    
    /**
     * 删除餐饮
     * @param dfid
     * @return
     */
    int deleteDailyFood(Long dfid);
    
    /**
     * 修改餐饮信息
     * @param dfid
     * @param dailyfood
     * @return
     */
    int updateDailyFood(Long dfid,String ddate,String content);
    
    /**
     * 查询餐饮信息
     * @param date
     * @return
     */
    Map<String, Object> searchDailyFood(int page,int page_size,Integer sid);
    
    /**
     * 新增餐饮图片
     * @param dfid
     * @param img
     * @return
     */
    int insertDailyFoodImg(Long dfid,String picName);
    
    /**
     * 查询代理商所创建的学校信息
     * @param pid 代理商id
     */
    Map<String, Object> serachSchoolInfoBypid(Integer pid,int page,
            int page_size);


    /**
     * 根据学校名称和城市id查询学校列表
     * @param page
     * @param page_size
     * @param cid
     * @param sname
     * @return
     */
    Map<String,Object> searchSchoolList(int page,int page_size,Integer cid,String sname);
    
    /**
     * 根据城市id查询学校列表
     * @param cid
     * @return
     */
    List<School> searchSchoolByCid(Integer cid);


    /**
     * 快速创建教师和学生家长
     * @return
     */
    int insertQuickSchool(File file, String fileContentType, Integer sid);


    /**
     * 批量导入学校信息
     * @return
     */
    int insertQuickSchool(File file, String fileContentType);


    /**
     * 查询所有学校
     * @param uid
     * @return
     */
    List<School> searchAllSchoolList();

    // 新版
    /**
     * 分页显示学校公告列表
     * @return
     */
    Map<String, Object> searchSchoolMessageListNew(int page,int pagesize, Integer sid);
    
    /**
     * 分页显示班级(学校)公告列表
     * @return
     */
    Map<String, Object> searchClassMessageListNew(int page,int pagesize, Long cid);
    
    /**
     * 家长获取公告列表
     * @return
     */
    Map<String, Object> searchParentMessageListNew(int page,int pagesize, Long cid);
    
    /**
     * 发布学校公告
     * @return
     */
    long insertSchoolMessageNew(int sid,Long tid,String title,String message,String imageName,Short type,Integer count);
    
    /**
     * 发布班级公告
     * @return
     */
    long insertClassMessageNew(Long cid,Long tid,String title,String message,String imageName,Integer count);
    
    /**
     * 查看公告详情（修改阅读量）
     * @param mid
     * @return
     */
    int insertMessageReading(Long mid,Long tid, Long uid);
    
    
    /**
     * 根据mid查询公告详情
     * @param mid
     * @return
     */
    SchoolMessage searchMessagebyMid(Long mid);
    /**
     * 获取班级公告未阅读列表
     * @param mid
     * @return
     */
    String searchUnReadingList(Long mid);
    
    /**
     * 修改学校简介
     * @return
     */
    int updateSchoolDesinfo(int sid,String desinfo);
    
    /**
     * 修改学校教师风采
     * @param stcid
     * @param name
     * @param img
     * @param desinfo
     * @return
     */
    int updateTeacherCharisma(Long stcid,String name,String img,String desinfo);
    
    /**
     * 删除学校教师风采
     * @param stcid
     * @return
     */
    int deleteTeacherCharisma(Long stcid);
    
    /**
     * 新增学校教师风采
     * @param sid
     * @param charisma
     * @return
     */
    int insertTeacherCharisma(Integer sid,String charisma);

    /**
     * 新增学校教师风采
     * @param sid
     * @param img
     * @param name
     * @param desinfo
     * @return
     */
    int insertTeacherCharisma(Integer sid,String img, String name,String desinfo);
    
    /**
     * 修改学校信息
     * @param sid
     * @param phone
     * @param address
     * @param url
     * @param postcode
     * @return
     */
    int updateSchoolInfo(Integer sid,String phone,String address,String url,String postcode,String email,String fax );
    
    /**
     * 获取校园教师风采
     * @param sid
     * @return
     */
    List<SchoolTeacherCharisma> searchSTCList(Integer sid);
    
}
